import axios from "axios";
import router from "@/routes";
// 自动会到public目下找data.json
//创建一个axios实例，将原生的axios封装在这个实例中
export const instance = axios.create({
  baseURL: "/api",
  //设置请求超时时间
  timeout: 5 * 1000,
});

// 请求拦截器
instance.interceptors.request.use(
  (config) => {
    //拦截请求，做一些公共的业务处理，例如统一设置token
    // 获取本地存储的token
    const profile = window.localStorage.getItem("profile") || "{}";
    //判断是否有token，如果有，则统一设置
    if (profile) {
      const token = JSON.parse(profile).token;
    }
    return config;
  },
  (err) => {
    //请求失败，做一些事情
    return Promise.reject(err);
  }
);

// 响应拦截器,清空本地无效信息，跳转到登陆页面
instance.interceptors.response.use(
  (response)=> {
    const resp = response.data;
    const message = resp.data.message;
    return resp;
  },
  (err)=> {
    //如果401状态码，则清空本地信息，跳转到登陆页面
    if(err.response && err.response.status === 401){
      // 1、清空本地信息
      // 2、跳转到登陆页面
      console.log("登陆过期，请重新登陆");
      err.response.data = [];
    }else if(err.response.status === 404){
      console.log("请求资源不存在");
      err.response.data = [];
    }else if(err.response.status === 500){
      console.log("服务器内部错误");
      err.response.data = [];
    }else if(err.response.status !== 200){
      console.log("请求失败");
      err.response.data = [];
  }
  return Promise.reject(err)
}
);
export default instance;
